{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 2,
   "id": "initial_id",
   "metadata": {
    "collapsed": true,
    "ExecuteTime": {
     "end_time": "2024-06-20T14:40:49.867969900Z",
     "start_time": "2024-06-20T14:40:49.849946800Z"
    }
   },
   "outputs": [],
   "source": [
    "import re\n",
    "import pandas as pd"
   ]
  },
  {
   "cell_type": "code",
   "outputs": [],
   "source": [
    "# 定义函数来提取数字并计算\n",
    "def calculate_salary(salary_str):\n",
    "\n",
    "    # 移除元/月，并统一处理k为千的单位\n",
    "    salary_str = salary_str.replace(\"元/月\", \"\").replace(\"K\", \"\").replace(\"k\", \"\")\n",
    "    \n",
    "    # 处理只有下限或只有上限的情况，例如 \"3-6K\" 或 \"6-11K\"\n",
    "    if \"-\" not in salary_str:\n",
    "        salary_parts = salary_str.split()\n",
    "        if len(salary_parts) == 1:  # 只有一个数字，假设为下限\n",
    "            lower, upper = float(salary_parts[0]), float(salary_parts[0])\n",
    "        else:  # 两个独立的数字，分别作为下限和上限\n",
    "            lower, upper = float(salary_parts[0]), float(salary_parts[1])\n",
    "    else:  # 一般情况，包含\"-\"的区间\n",
    "        lower, upper = map(float, salary_str.split(\"-\"))\n",
    "    if float(((upper - lower) / 2) * 12)<1:\n",
    "        print(salary_str)\n",
    "    \n",
    "    # 计算平均年薪\n",
    "    return float(((upper + lower) / 2) * 12)\n",
    "# 定义函数来提取数字并计算\n",
    "def calculate_salary_num(salary_str):\n",
    "    match = re.search(r'(\\d+-\\d+)', salary_str)\n",
    "    salary=match.group(1)\n",
    "    # print(salary)\n",
    "    match_num = re.search(r'(\\d+)薪', salary_str)\n",
    "    salary_num=int(match_num.group(1))\n",
    "    # print(salary_num)\n",
    "    salary_str = salary\n",
    "\n",
    "    # 处理只有下限或只有上限的情况，例如 \"3-6K\" 或 \"6-11K\"\n",
    "    if \"-\" not in salary_str:\n",
    "        salary_parts = salary_str.split()\n",
    "        if len(salary_parts) == 1:  # 只有一个数字，假设为下限\n",
    "            lower, upper = float(salary_parts[0]), float(salary_parts[0])\n",
    "        else:  # 两个独立的数字，分别作为下限和上限\n",
    "            lower, upper = float(salary_parts[0]), float(salary_parts[1])\n",
    "    else:  # 一般情况，包含\"-\"的区间\n",
    "        lower, upper = map(float, salary_str.split(\"-\"))\n",
    "    return float(((upper + lower) / 2) * salary_num)"
   ],
   "metadata": {
    "collapsed": false,
    "ExecuteTime": {
     "end_time": "2024-06-20T14:40:50.686213200Z",
     "start_time": "2024-06-20T14:40:50.665187600Z"
    }
   },
   "id": "fc63de983bb268bf",
   "execution_count": 3
  },
  {
   "cell_type": "code",
   "outputs": [],
   "source": [
    "combined_df=pd.read_csv('shanghai_error_java.csv')\n",
    "# 识别含有NaN值的行\n",
    "rows_with_nan = combined_df[combined_df.isnull().any(axis=1)]\n",
    "#去掉nan值\n",
    "combined_df.fillna(\"无\", inplace=True)\n",
    "job_salary=combined_df['job_salary']\n",
    "pattern_internship_day=r'\\d+元/天'\n",
    "job_internship_day=job_salary[job_salary.str.contains(pattern_internship_day)]\n",
    "pattern_internship_hour=r'\\d+元/时'\n",
    "job_internship_hour=job_salary[job_salary.str.contains(pattern_internship_hour)]\n",
    "\n",
    "pattern_extract_13=r'\\b\\d{1,5}(?:-\\d{1,5})?[kK]·\\d{1,2}薪\\b'\n",
    "pattern_extract_13=job_salary[job_salary.str.contains(pattern_extract_13)]\n",
    "pattern_extract_12=r'\\b\\d{1,5}(?:-\\d{1,5})?[kK]\\b(?!\\s*·)'\n",
    "pattern_extract_12=job_salary[job_salary.str.contains(pattern_extract_12)]\n",
    "\n",
    "annual_salary=pattern_extract_12.apply(calculate_salary)\n",
    "annual_salary_num=pattern_extract_13.apply(calculate_salary_num)\n",
    "all_annual_salary=pd.concat([annual_salary,annual_salary_num], axis=0)"
   ],
   "metadata": {
    "collapsed": false,
    "ExecuteTime": {
     "end_time": "2024-06-20T14:40:52.202637700Z",
     "start_time": "2024-06-20T14:40:52.085826700Z"
    }
   },
   "id": "c0b861e18a4d0dc8",
   "execution_count": 4
  },
  {
   "cell_type": "code",
   "outputs": [],
   "source": [
    "combined_df['annual_salary']=all_annual_salary"
   ],
   "metadata": {
    "collapsed": false,
    "ExecuteTime": {
     "end_time": "2024-06-20T14:40:53.736341700Z",
     "start_time": "2024-06-20T14:40:53.726219700Z"
    }
   },
   "id": "91beac9331c2aff6",
   "execution_count": 5
  },
  {
   "cell_type": "code",
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "C:\\Users\\17463\\AppData\\Local\\Temp\\ipykernel_25956\\3935177313.py:9: SettingWithCopyWarning: \n",
      "A value is trying to be set on a copy of a slice from a DataFrame.\n",
      "Try using .loc[row_indexer,col_indexer] = value instead\n",
      "\n",
      "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
      "  jobs.loc[:, 'deleted'] = 0\n"
     ]
    }
   ],
   "source": [
    "company_df=combined_df[['company_name','company_intro','company_status','company_size','company_detailed_address','company_type']]\n",
    "unique_company_df = company_df.drop_duplicates(subset='company_detailed_address')\n",
    "unique_company_df.insert(0, 'company_id', range(1, len(unique_company_df) + 1))\n",
    "sample_company_df=unique_company_df[['company_id','company_detailed_address']]\n",
    "combined_df.insert(0, 'job_id', range(1, len(combined_df) + 1))\n",
    "# 左连接示例\n",
    "merged_df_left = pd.merge(combined_df, sample_company_df, on='company_detailed_address', how='left')\n",
    "jobs=merged_df_left[['job_id','company_id','company_name','job_title','hr_name','job_salary','annual_salary','job_description','company_brief_address']]\n",
    "jobs.loc[:, 'deleted'] = 0"
   ],
   "metadata": {
    "collapsed": false,
    "ExecuteTime": {
     "end_time": "2024-06-20T14:40:55.589934600Z",
     "start_time": "2024-06-20T14:40:55.546672300Z"
    }
   },
   "id": "500c2c0087f326ad",
   "execution_count": 6
  },
  {
   "cell_type": "code",
   "outputs": [],
   "source": [
    "import ast\n",
    "\n",
    "\n",
    "def str_split(job_str):\n",
    "    try:\n",
    "        list_data = ast.literal_eval(job_str)\n",
    "        return list_data\n",
    "    except:\n",
    "        items = job_str.split('｜')\n",
    "        return items"
   ],
   "metadata": {
    "collapsed": false,
    "ExecuteTime": {
     "end_time": "2024-06-20T14:40:58.383678800Z",
     "start_time": "2024-06-20T14:40:58.352145100Z"
    }
   },
   "id": "6cb520b026effc7b",
   "execution_count": 7
  },
  {
   "cell_type": "code",
   "outputs": [],
   "source": [
    "merged_df_left['job_tags']=merged_df_left['job_tags'].apply(str_split)\n",
    "# 拆分job_tags列\n",
    "tags_split = merged_df_left['job_tags'].apply(pd.Series)\n",
    "\n",
    "# 重命名新生成的列\n",
    "tags_split.columns = ['资历', '学历']\n",
    "# 合并新列到原始DataFrame\n",
    "merged_df_left = pd.concat([merged_df_left, tags_split], axis=1)\n",
    "jobs=pd.concat([jobs, tags_split], axis=1)\n",
    "jobs=jobs.dropna()\n",
    "jobs.loc[:, 'tags'] = 'java'"
   ],
   "metadata": {
    "collapsed": false,
    "ExecuteTime": {
     "end_time": "2024-06-20T14:40:59.207548800Z",
     "start_time": "2024-06-20T14:40:58.934222300Z"
    }
   },
   "id": "5353fcabd3dc5923",
   "execution_count": 8
  },
  {
   "cell_type": "code",
   "outputs": [],
   "source": [
    "jobs.to_csv('shanghai_java_annual_salary.csv', index=False)"
   ],
   "metadata": {
    "collapsed": false,
    "ExecuteTime": {
     "end_time": "2024-06-20T14:42:33.408139500Z",
     "start_time": "2024-06-20T14:42:33.341409300Z"
    }
   },
   "id": "63701d94867ad526",
   "execution_count": 10
  },
  {
   "cell_type": "code",
   "outputs": [
    {
     "data": {
      "text/plain": "    job_id  company_id company_name         job_title hr_name  job_salary  \\\n0        1           1         慧安金科           后端开发工程师     张女士  30-40K·15薪   \n1        2           2         中汇云链              Java     黄翔煊       5-10K   \n2        3           3           熵央       Java高级开发工程师     严先生      17-28K   \n3        4           4      某知名物流公司            JAVA开发     李先生      15-25K   \n4        5           5           同威       Java高级开发工程师     傅荣斌      12-20K   \n..     ...         ...          ...               ...     ...         ...   \n95      96          96    某500强上市公司       高级java研发工程师     练小丽  40-70K·15薪   \n96      97          97      某知名交通公司  Java Web 应用开发工程师     熊倩倩      20-28K   \n97      98          98         上海CA        中高级java工程师     谢女士      14-20K   \n98      99          99       义翎智能科技       Java高级研发工程师      丁倩  20-30K·15薪   \n99     100         100         睿渠医疗       中级Java开发工程师     凌天辰      18-24K   \n\n    annual_salary                                    job_description  \\\n0           525.0  工作职责：\\n1、负责海外信贷业务相关系统设计、研发、迭代；\\n2、协助业务需求分析，将业务...   \n1            90.0  软件开发工程师\\n\\n岗位职责:\\n1、 负责系统开发、部署和集成，解决开发过程中的技术问题...   \n2           270.0  【岗位职责】\\n1、对接产品需求，独立进行产品的概要设计、详细设计和代码实现工作\\n2、解决...   \n3           240.0  岗位要求:\\n计算机及相关专业，大学本科以上学历，5 年以上开发经验\\n1.精通java 语...   \n4           192.0  1、理解架构师的职责和架构设计的目标、原则及取舍；\\n2、精通架构模式，IOC、AOP、SO...   \n..            ...                                                ...   \n95          825.0  岗位职责：\\n1.承担领导交付的任务，负责带领工程小组针对需求进行设计及开发；\\n2.研究及...   \n96          288.0  职责:\\n• 参与数字化供应链相关平台项目开发\\n• 理解用户故事，参加需求讨论和系统设计\\...   \n97          204.0  职位描述\\n1、负责公司 产品架构设计和研发工作\\n2、能独立完成项目的系统分析、设计，并进...   \n98          375.0  * 项目经验：\\n1、具备丰富的分布式系统设计开发经验；\\n2、3~5 年以上互联网、通信、...   \n99          252.0  岗位职责：\\n1.主要负责公司系统平台、产品、小程序等研发工作、对接商保公司、医院方向；\\n...   \n\n   company_brief_address  deleted     资历  学历  tags  \n0                上海虹口区江湾        0  5-10年  本科  java  \n1               上海虹口区大柏树        0   1-3年  本科  java  \n2              上海虹口区四川北路        0   3-5年  大专  java  \n3                     上海        0   3-5年  本科  java  \n4              上海虹口区四川北路        0  5-10年  本科  java  \n..                   ...      ...    ...  ..   ...  \n95                    上海        0  5-10年  本科  java  \n96                    上海        0   3-5年  本科  java  \n97             上海虹口区四川北路        0   3-5年  本科  java  \n98             上海虹口区四川北路        0   3-5年  本科  java  \n99               上海虹口区江湾        0   3-5年  本科  java  \n\n[100 rows x 13 columns]",
      "text/html": "<div>\n<style scoped>\n    .dataframe tbody tr th:only-of-type {\n        vertical-align: middle;\n    }\n\n    .dataframe tbody tr th {\n        vertical-align: top;\n    }\n\n    .dataframe thead th {\n        text-align: right;\n    }\n</style>\n<table border=\"1\" class=\"dataframe\">\n  <thead>\n    <tr style=\"text-align: right;\">\n      <th></th>\n      <th>job_id</th>\n      <th>company_id</th>\n      <th>company_name</th>\n      <th>job_title</th>\n      <th>hr_name</th>\n      <th>job_salary</th>\n      <th>annual_salary</th>\n      <th>job_description</th>\n      <th>company_brief_address</th>\n      <th>deleted</th>\n      <th>资历</th>\n      <th>学历</th>\n      <th>tags</th>\n    </tr>\n  </thead>\n  <tbody>\n    <tr>\n      <th>0</th>\n      <td>1</td>\n      <td>1</td>\n      <td>慧安金科</td>\n      <td>后端开发工程师</td>\n      <td>张女士</td>\n      <td>30-40K·15薪</td>\n      <td>525.0</td>\n      <td>工作职责：\\n1、负责海外信贷业务相关系统设计、研发、迭代；\\n2、协助业务需求分析，将业务...</td>\n      <td>上海虹口区江湾</td>\n      <td>0</td>\n      <td>5-10年</td>\n      <td>本科</td>\n      <td>java</td>\n    </tr>\n    <tr>\n      <th>1</th>\n      <td>2</td>\n      <td>2</td>\n      <td>中汇云链</td>\n      <td>Java</td>\n      <td>黄翔煊</td>\n      <td>5-10K</td>\n      <td>90.0</td>\n      <td>软件开发工程师\\n\\n岗位职责:\\n1、 负责系统开发、部署和集成，解决开发过程中的技术问题...</td>\n      <td>上海虹口区大柏树</td>\n      <td>0</td>\n      <td>1-3年</td>\n      <td>本科</td>\n      <td>java</td>\n    </tr>\n    <tr>\n      <th>2</th>\n      <td>3</td>\n      <td>3</td>\n      <td>熵央</td>\n      <td>Java高级开发工程师</td>\n      <td>严先生</td>\n      <td>17-28K</td>\n      <td>270.0</td>\n      <td>【岗位职责】\\n1、对接产品需求，独立进行产品的概要设计、详细设计和代码实现工作\\n2、解决...</td>\n      <td>上海虹口区四川北路</td>\n      <td>0</td>\n      <td>3-5年</td>\n      <td>大专</td>\n      <td>java</td>\n    </tr>\n    <tr>\n      <th>3</th>\n      <td>4</td>\n      <td>4</td>\n      <td>某知名物流公司</td>\n      <td>JAVA开发</td>\n      <td>李先生</td>\n      <td>15-25K</td>\n      <td>240.0</td>\n      <td>岗位要求:\\n计算机及相关专业，大学本科以上学历，5 年以上开发经验\\n1.精通java 语...</td>\n      <td>上海</td>\n      <td>0</td>\n      <td>3-5年</td>\n      <td>本科</td>\n      <td>java</td>\n    </tr>\n    <tr>\n      <th>4</th>\n      <td>5</td>\n      <td>5</td>\n      <td>同威</td>\n      <td>Java高级开发工程师</td>\n      <td>傅荣斌</td>\n      <td>12-20K</td>\n      <td>192.0</td>\n      <td>1、理解架构师的职责和架构设计的目标、原则及取舍；\\n2、精通架构模式，IOC、AOP、SO...</td>\n      <td>上海虹口区四川北路</td>\n      <td>0</td>\n      <td>5-10年</td>\n      <td>本科</td>\n      <td>java</td>\n    </tr>\n    <tr>\n      <th>...</th>\n      <td>...</td>\n      <td>...</td>\n      <td>...</td>\n      <td>...</td>\n      <td>...</td>\n      <td>...</td>\n      <td>...</td>\n      <td>...</td>\n      <td>...</td>\n      <td>...</td>\n      <td>...</td>\n      <td>...</td>\n      <td>...</td>\n    </tr>\n    <tr>\n      <th>95</th>\n      <td>96</td>\n      <td>96</td>\n      <td>某500强上市公司</td>\n      <td>高级java研发工程师</td>\n      <td>练小丽</td>\n      <td>40-70K·15薪</td>\n      <td>825.0</td>\n      <td>岗位职责：\\n1.承担领导交付的任务，负责带领工程小组针对需求进行设计及开发；\\n2.研究及...</td>\n      <td>上海</td>\n      <td>0</td>\n      <td>5-10年</td>\n      <td>本科</td>\n      <td>java</td>\n    </tr>\n    <tr>\n      <th>96</th>\n      <td>97</td>\n      <td>97</td>\n      <td>某知名交通公司</td>\n      <td>Java Web 应用开发工程师</td>\n      <td>熊倩倩</td>\n      <td>20-28K</td>\n      <td>288.0</td>\n      <td>职责:\\n• 参与数字化供应链相关平台项目开发\\n• 理解用户故事，参加需求讨论和系统设计\\...</td>\n      <td>上海</td>\n      <td>0</td>\n      <td>3-5年</td>\n      <td>本科</td>\n      <td>java</td>\n    </tr>\n    <tr>\n      <th>97</th>\n      <td>98</td>\n      <td>98</td>\n      <td>上海CA</td>\n      <td>中高级java工程师</td>\n      <td>谢女士</td>\n      <td>14-20K</td>\n      <td>204.0</td>\n      <td>职位描述\\n1、负责公司 产品架构设计和研发工作\\n2、能独立完成项目的系统分析、设计，并进...</td>\n      <td>上海虹口区四川北路</td>\n      <td>0</td>\n      <td>3-5年</td>\n      <td>本科</td>\n      <td>java</td>\n    </tr>\n    <tr>\n      <th>98</th>\n      <td>99</td>\n      <td>99</td>\n      <td>义翎智能科技</td>\n      <td>Java高级研发工程师</td>\n      <td>丁倩</td>\n      <td>20-30K·15薪</td>\n      <td>375.0</td>\n      <td>* 项目经验：\\n1、具备丰富的分布式系统设计开发经验；\\n2、3~5 年以上互联网、通信、...</td>\n      <td>上海虹口区四川北路</td>\n      <td>0</td>\n      <td>3-5年</td>\n      <td>本科</td>\n      <td>java</td>\n    </tr>\n    <tr>\n      <th>99</th>\n      <td>100</td>\n      <td>100</td>\n      <td>睿渠医疗</td>\n      <td>中级Java开发工程师</td>\n      <td>凌天辰</td>\n      <td>18-24K</td>\n      <td>252.0</td>\n      <td>岗位职责：\\n1.主要负责公司系统平台、产品、小程序等研发工作、对接商保公司、医院方向；\\n...</td>\n      <td>上海虹口区江湾</td>\n      <td>0</td>\n      <td>3-5年</td>\n      <td>本科</td>\n      <td>java</td>\n    </tr>\n  </tbody>\n</table>\n<p>100 rows × 13 columns</p>\n</div>"
     },
     "execution_count": 12,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "jobs[0:100]"
   ],
   "metadata": {
    "collapsed": false,
    "ExecuteTime": {
     "end_time": "2024-06-20T15:12:20.093210Z",
     "start_time": "2024-06-20T15:12:20.050498900Z"
    }
   },
   "id": "1e42aba1d84deb8f",
   "execution_count": 12
  },
  {
   "cell_type": "code",
   "outputs": [
    {
     "data": {
      "text/plain": "学历\n本科       2876\n大专        411\n学历不限      101\n硕士         60\n中专/中技      10\n博士          2\n初中及以下       2\n高中          2\nName: count, dtype: int64"
     },
     "execution_count": 10,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "jobs['学历'].value_counts()"
   ],
   "metadata": {
    "collapsed": false,
    "ExecuteTime": {
     "end_time": "2024-06-20T06:08:13.581070Z",
     "start_time": "2024-06-20T06:08:13.568071800Z"
    }
   },
   "id": "88fb1c18a6288370",
   "execution_count": 10
  },
  {
   "cell_type": "code",
   "outputs": [
    {
     "data": {
      "text/plain": "资历\n3-5年     1453\n5-10年    1061\n1-3年      542\n经验不限      305\n10年以上      57\n1年以内       45\n应届生         1\nName: count, dtype: int64"
     },
     "execution_count": 11,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "jobs['资历'].value_counts()"
   ],
   "metadata": {
    "collapsed": false,
    "ExecuteTime": {
     "end_time": "2024-06-20T06:09:46.599094900Z",
     "start_time": "2024-06-20T06:09:46.563094700Z"
    }
   },
   "id": "7d9c5ed023259652",
   "execution_count": 11
  },
  {
   "cell_type": "code",
   "outputs": [
    {
     "data": {
      "text/plain": "      job_id  company_id company_name                  job_title hr_name  \\\n0          1           1         慧安金科                    后端开发工程师     张女士   \n1          2           2         中汇云链                       Java     黄翔煊   \n2          3           3           熵央                Java高级开发工程师     严先生   \n3          4           4      某知名物流公司                     JAVA开发     李先生   \n4          5           5           同威                Java高级开发工程师     傅荣斌   \n...      ...         ...          ...                        ...     ...   \n3480    3481        3064         易商数智                上海Java开发工程师      孙晶   \n3481    3482        2867           海魄             java开发工程师(中高级)     刘女士   \n3482    3483        3065          慷泰桐              Java高级工程师/架构师      王莹   \n3483    3484        3066          爱达克  CodeBeamer二次开发工程师(J10627)     李诗雯   \n3484    3485        2926    某500强上市公司                java后端开发工程师     盖女士   \n\n      job_salary  annual_salary  \\\n0     30-40K·15薪          525.0   \n1          5-10K           90.0   \n2         17-28K          270.0   \n3         15-25K          240.0   \n4         12-20K          192.0   \n...          ...            ...   \n3480      10-13K          138.0   \n3481      15-20K          210.0   \n3482      15-20K          210.0   \n3483  15-20K·14薪          245.0   \n3484  35-65K·15薪          750.0   \n\n                                        job_description company_brief_address  \\\n0     工作职责：\\n1、负责海外信贷业务相关系统设计、研发、迭代；\\n2、协助业务需求分析，将业务...               上海虹口区江湾   \n1     软件开发工程师\\n\\n岗位职责:\\n1、 负责系统开发、部署和集成，解决开发过程中的技术问题...              上海虹口区大柏树   \n2     【岗位职责】\\n1、对接产品需求，独立进行产品的概要设计、详细设计和代码实现工作\\n2、解决...             上海虹口区四川北路   \n3     岗位要求:\\n计算机及相关专业，大学本科以上学历，5 年以上开发经验\\n1.精通java 语...                    上海   \n4     1、理解架构师的职责和架构设计的目标、原则及取舍；\\n2、精通架构模式，IOC、AOP、SO...             上海虹口区四川北路   \n...                                                 ...                   ...   \n3480  1. 熟练掌握java编程语言\\n2. 熟练使用常用的java框架，如Spring,Myba...               上海黄浦区外滩   \n3481  岗位职责：\\n1、企业内部前端及后端服务的开发；\\n 2、根据系统的功能需求和技术规格进行编...              上海黄浦区城隍庙   \n3482  岗位职责：\\r\\n\\r\\n1、理解业务，识别需求，负责/参与技术架构设计、重构、优化，根据业...               上海宝山区大华   \n3483  工作职责:\\n该职位需要提供技术解决方案，作为ALM相关活动的整体PMT解决方案的一部分。\\...               上海黄浦区外滩   \n3484  大厂，高并发等经验优先考虑\\n1. 深度参与大模型平台的基础架构和产品化研发,并部署到多个数...                    上海   \n\n      deleted     资历  学历  tags  \n0           0  5-10年  本科  java  \n1           0   1-3年  本科  java  \n2           0   3-5年  大专  java  \n3           0   3-5年  本科  java  \n4           0  5-10年  本科  java  \n...       ...    ...  ..   ...  \n3480        0  5-10年  本科  java  \n3481        0  5-10年  大专  java  \n3482        0  5-10年  大专  java  \n3483        0   3-5年  本科  java  \n3484        0  5-10年  本科  java  \n\n[3464 rows x 13 columns]",
      "text/html": "<div>\n<style scoped>\n    .dataframe tbody tr th:only-of-type {\n        vertical-align: middle;\n    }\n\n    .dataframe tbody tr th {\n        vertical-align: top;\n    }\n\n    .dataframe thead th {\n        text-align: right;\n    }\n</style>\n<table border=\"1\" class=\"dataframe\">\n  <thead>\n    <tr style=\"text-align: right;\">\n      <th></th>\n      <th>job_id</th>\n      <th>company_id</th>\n      <th>company_name</th>\n      <th>job_title</th>\n      <th>hr_name</th>\n      <th>job_salary</th>\n      <th>annual_salary</th>\n      <th>job_description</th>\n      <th>company_brief_address</th>\n      <th>deleted</th>\n      <th>资历</th>\n      <th>学历</th>\n      <th>tags</th>\n    </tr>\n  </thead>\n  <tbody>\n    <tr>\n      <th>0</th>\n      <td>1</td>\n      <td>1</td>\n      <td>慧安金科</td>\n      <td>后端开发工程师</td>\n      <td>张女士</td>\n      <td>30-40K·15薪</td>\n      <td>525.0</td>\n      <td>工作职责：\\n1、负责海外信贷业务相关系统设计、研发、迭代；\\n2、协助业务需求分析，将业务...</td>\n      <td>上海虹口区江湾</td>\n      <td>0</td>\n      <td>5-10年</td>\n      <td>本科</td>\n      <td>java</td>\n    </tr>\n    <tr>\n      <th>1</th>\n      <td>2</td>\n      <td>2</td>\n      <td>中汇云链</td>\n      <td>Java</td>\n      <td>黄翔煊</td>\n      <td>5-10K</td>\n      <td>90.0</td>\n      <td>软件开发工程师\\n\\n岗位职责:\\n1、 负责系统开发、部署和集成，解决开发过程中的技术问题...</td>\n      <td>上海虹口区大柏树</td>\n      <td>0</td>\n      <td>1-3年</td>\n      <td>本科</td>\n      <td>java</td>\n    </tr>\n    <tr>\n      <th>2</th>\n      <td>3</td>\n      <td>3</td>\n      <td>熵央</td>\n      <td>Java高级开发工程师</td>\n      <td>严先生</td>\n      <td>17-28K</td>\n      <td>270.0</td>\n      <td>【岗位职责】\\n1、对接产品需求，独立进行产品的概要设计、详细设计和代码实现工作\\n2、解决...</td>\n      <td>上海虹口区四川北路</td>\n      <td>0</td>\n      <td>3-5年</td>\n      <td>大专</td>\n      <td>java</td>\n    </tr>\n    <tr>\n      <th>3</th>\n      <td>4</td>\n      <td>4</td>\n      <td>某知名物流公司</td>\n      <td>JAVA开发</td>\n      <td>李先生</td>\n      <td>15-25K</td>\n      <td>240.0</td>\n      <td>岗位要求:\\n计算机及相关专业，大学本科以上学历，5 年以上开发经验\\n1.精通java 语...</td>\n      <td>上海</td>\n      <td>0</td>\n      <td>3-5年</td>\n      <td>本科</td>\n      <td>java</td>\n    </tr>\n    <tr>\n      <th>4</th>\n      <td>5</td>\n      <td>5</td>\n      <td>同威</td>\n      <td>Java高级开发工程师</td>\n      <td>傅荣斌</td>\n      <td>12-20K</td>\n      <td>192.0</td>\n      <td>1、理解架构师的职责和架构设计的目标、原则及取舍；\\n2、精通架构模式，IOC、AOP、SO...</td>\n      <td>上海虹口区四川北路</td>\n      <td>0</td>\n      <td>5-10年</td>\n      <td>本科</td>\n      <td>java</td>\n    </tr>\n    <tr>\n      <th>...</th>\n      <td>...</td>\n      <td>...</td>\n      <td>...</td>\n      <td>...</td>\n      <td>...</td>\n      <td>...</td>\n      <td>...</td>\n      <td>...</td>\n      <td>...</td>\n      <td>...</td>\n      <td>...</td>\n      <td>...</td>\n      <td>...</td>\n    </tr>\n    <tr>\n      <th>3480</th>\n      <td>3481</td>\n      <td>3064</td>\n      <td>易商数智</td>\n      <td>上海Java开发工程师</td>\n      <td>孙晶</td>\n      <td>10-13K</td>\n      <td>138.0</td>\n      <td>1. 熟练掌握java编程语言\\n2. 熟练使用常用的java框架，如Spring,Myba...</td>\n      <td>上海黄浦区外滩</td>\n      <td>0</td>\n      <td>5-10年</td>\n      <td>本科</td>\n      <td>java</td>\n    </tr>\n    <tr>\n      <th>3481</th>\n      <td>3482</td>\n      <td>2867</td>\n      <td>海魄</td>\n      <td>java开发工程师(中高级)</td>\n      <td>刘女士</td>\n      <td>15-20K</td>\n      <td>210.0</td>\n      <td>岗位职责：\\n1、企业内部前端及后端服务的开发；\\n 2、根据系统的功能需求和技术规格进行编...</td>\n      <td>上海黄浦区城隍庙</td>\n      <td>0</td>\n      <td>5-10年</td>\n      <td>大专</td>\n      <td>java</td>\n    </tr>\n    <tr>\n      <th>3482</th>\n      <td>3483</td>\n      <td>3065</td>\n      <td>慷泰桐</td>\n      <td>Java高级工程师/架构师</td>\n      <td>王莹</td>\n      <td>15-20K</td>\n      <td>210.0</td>\n      <td>岗位职责：\\r\\n\\r\\n1、理解业务，识别需求，负责/参与技术架构设计、重构、优化，根据业...</td>\n      <td>上海宝山区大华</td>\n      <td>0</td>\n      <td>5-10年</td>\n      <td>大专</td>\n      <td>java</td>\n    </tr>\n    <tr>\n      <th>3483</th>\n      <td>3484</td>\n      <td>3066</td>\n      <td>爱达克</td>\n      <td>CodeBeamer二次开发工程师(J10627)</td>\n      <td>李诗雯</td>\n      <td>15-20K·14薪</td>\n      <td>245.0</td>\n      <td>工作职责:\\n该职位需要提供技术解决方案，作为ALM相关活动的整体PMT解决方案的一部分。\\...</td>\n      <td>上海黄浦区外滩</td>\n      <td>0</td>\n      <td>3-5年</td>\n      <td>本科</td>\n      <td>java</td>\n    </tr>\n    <tr>\n      <th>3484</th>\n      <td>3485</td>\n      <td>2926</td>\n      <td>某500强上市公司</td>\n      <td>java后端开发工程师</td>\n      <td>盖女士</td>\n      <td>35-65K·15薪</td>\n      <td>750.0</td>\n      <td>大厂，高并发等经验优先考虑\\n1. 深度参与大模型平台的基础架构和产品化研发,并部署到多个数...</td>\n      <td>上海</td>\n      <td>0</td>\n      <td>5-10年</td>\n      <td>本科</td>\n      <td>java</td>\n    </tr>\n  </tbody>\n</table>\n<p>3464 rows × 13 columns</p>\n</div>"
     },
     "execution_count": 12,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "jobs"
   ],
   "metadata": {
    "collapsed": false,
    "ExecuteTime": {
     "end_time": "2024-06-20T07:29:32.318342400Z",
     "start_time": "2024-06-20T07:29:32.302747Z"
    }
   },
   "id": "5aec300c267b39f4",
   "execution_count": 12
  },
  {
   "cell_type": "code",
   "outputs": [],
   "source": [
    "test_str='''\n",
    "职位描述\n",
    "1、负责短视频产品-直播平台的开发和优化工作；\n",
    "2、发掘和分析业务需求，撰写技术方案和系统设计；\n",
    "3、通过不断技术研究和创新，推动直播业务的快速发展和高效迭代；\n",
    "4、负责维护基础设施相关服务和技术组件的迭代优化、部署升级、服务治理等。\n",
    "职位要求\n",
    "1、本科及以上学历，计算机，软件，电信或相关专业，1-7年工作经验；\n",
    "2、具备扎实的编程能力、优秀的设计能力，热爱编程；\n",
    "3、熟悉 Mysql、NoSQL、Redis、消息队列等开源组件；\n",
    "4、熟悉互联网架构体系，对微服务拆分、服务治理、负载均衡、流控等有较好的理解和实践；\n",
    "5、对软件产品有强烈的责任心，具备良好的沟通能力和优秀的团队协作能力。\n",
    "岗位要求：['Java', 'Spring', 'MySQL', '不接受居家办公', '团队管理经验']\n",
    "岗位福利：['餐饮及下午茶', '就近租房补贴', '节日礼品', '年度体检', '免费健身设施', '家庭关爱假', '家属自选保险', '住房补贴', '团建聚餐', '零食下午茶', '餐补', '带薪年假', '夜班补助', '股票期权', '绩效奖金', '年终奖', '定期体检', '意外险', '补充医疗保险', '五险一金']\n",
    "'''"
   ],
   "metadata": {
    "collapsed": false,
    "ExecuteTime": {
     "end_time": "2024-06-20T07:32:47.516259500Z",
     "start_time": "2024-06-20T07:32:47.499263200Z"
    }
   },
   "id": "17f28932e173ac73",
   "execution_count": 13
  },
  {
   "cell_type": "code",
   "outputs": [],
   "source": [
    "import jieba\n",
    "# 精确模式\n",
    "words = jieba.cut(test_str, cut_all=False)"
   ],
   "metadata": {
    "collapsed": false,
    "ExecuteTime": {
     "end_time": "2024-06-20T07:33:49.213866900Z",
     "start_time": "2024-06-20T07:33:49.127177Z"
    }
   },
   "id": "2e0e4f0dbf553837",
   "execution_count": 14
  },
  {
   "cell_type": "code",
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Building prefix dict from the default dictionary ...\n",
      "Dumping model to file cache C:\\Users\\17463\\AppData\\Local\\Temp\\jieba.cache\n",
      "Loading model cost 0.772 seconds.\n",
      "Prefix dict has been built successfully.\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "精确模式分词结果： \n",
      "/职位/描述/\n",
      "/1/、/负责/短/视频产品/-/直播/平台/的/开发/和/优化/工作/；/\n",
      "/2/、/发掘/和/分析/业务/需求/，/撰写/技术/方案/和/系统/设计/；/\n",
      "/3/、/通过/不断/技术/研究/和/创新/，/推动/直播/业务/的/快速/发展/和/高效/迭代/；/\n",
      "/4/、/负责/维护/基础设施/相关/服务/和/技术/组件/的/迭代/优化/、/部署/升级/、/服务/治理/等/。/\n",
      "/职位/要求/\n",
      "/1/、/本科/及/以上学历/，/计算机/，/软件/，/电信/或/相关/专业/，/1/-/7/年/工作/经验/；/\n",
      "/2/、/具备/扎实/的/编程/能力/、/优秀/的/设计/能力/，/热爱/编程/；/\n",
      "/3/、/熟悉/ /Mysql/、/NoSQL/、/Redis/、/消息/队列/等/开源/组件/；/\n",
      "/4/、/熟悉/互联网/架构/体系/，/对微/服务/拆分/、/服务/治理/、/负载/均衡/、/流控/等/有/较/好/的/理解/和/实践/；/\n",
      "/5/、/对/软件产品/有/强烈/的/责任心/，/具备/良好/的/沟通/能力/和/优秀/的/团队/协作/能力/。/\n",
      "/岗位/要求/：/[/'/Java/'/,/ /'/Spring/'/,/ /'/MySQL/'/,/ /'/不/接受/居家/办公/'/,/ /'/团队/管理/经验/'/]/\n",
      "/岗位/福利/：/[/'/餐饮/及/下午茶/'/,/ /'/就近/租房/补贴/'/,/ /'/节日/礼品/'/,/ /'/年度/体检/'/,/ /'/免费/健身/设施/'/,/ /'/家庭/关爱/假/'/,/ /'/家属/自选/保险/'/,/ /'/住房补贴/'/,/ /'/团建/聚餐/'/,/ /'/零食/下午茶/'/,/ /'/餐补/'/,/ /'/带薪/年/假/'/,/ /'/夜班/补助/'/,/ /'/股票/期权/'/,/ /'/绩效奖金/'/,/ /'/年终奖/'/,/ /'/定期/体检/'/,/ /'/意外险/'/,/ /'/补充/医疗保险/'/,/ /'/五险/一金/'/]/\n"
     ]
    }
   ],
   "source": [
    "print(\"精确模式分词结果：\", \"/\".join(words))"
   ],
   "metadata": {
    "collapsed": false,
    "ExecuteTime": {
     "end_time": "2024-06-20T07:34:01.511855100Z",
     "start_time": "2024-06-20T07:34:00.722934Z"
    }
   },
   "id": "6ef58790365f990c",
   "execution_count": 16
  },
  {
   "cell_type": "code",
   "outputs": [],
   "source": [],
   "metadata": {
    "collapsed": false
   },
   "id": "de1d9db93bd6c801"
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 2
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython2",
   "version": "2.7.6"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
